package drivers

import (
	"context"
	"io"
)

type FileStorage interface {
	//Write writes content to a file
	Write(ctx context.Context, path string, contents string, config map[string]any) error
	// WriteStream writes the data stream to a file
	WriteStream(ctx context.Context, path string, stream io.Reader, config map[string]any) error
	// Read a file to a string
	Read(ctx context.Context, path string) (string, error)
	// ReadStream read the file to the stream
	ReadStream(ctx context.Context, path string) (io.Reader, error)
	// Delete delete file
	Delete(ctx context.Context, path string) error
	// PublicUrl gets the file public link
	PublicUrl(ctx context.Context, path string) (string, error)
	//PrivateUrl sets the file private link
	PrivateUrl(ctx context.Context, path string) (string, error)
}
